High Efficiency Video Coding (HEVC) is a video coding standard being developed jointly by ITU-T, also known as the Video Coding Experts Group (VCEG), and by ISO/IEC, also known as the Moving Picture Experts Group (MPEG) in the joint collaborative team on video coding (JCT-VC).
A video input signal has multiple frames. HEVC divides a frame into rectangular blocks or LCU (largest coding unit) or macro-blocks of 16×16, 32×32 or 64×64. An optimal size of the LCU is selected based on the video content. The rectangular blocks can be predicted from previously decoded data either by motion compensated prediction or intra prediction. The resulting prediction error is coded by applying block transforms based on an integer approximation of the discrete cosine transform which is followed by the quantization and coding of the transform coefficients.
Transform coding with quantization is a type of data compression which is commonly “lossy” as the quantization process discards a portion of data associated with the transform of the video input, thereby lowering its bandwidth requirement but often also results in quality loss in the reconstructed video.
SAO (Sample Adaptive Offset) encoder is placed in a reconstruction loop of a video encoder and it is placed in the video encoder after a de-blocking filter. SAO is a process of adding offset to de-blocked pixels received from the de-blocking filter. The offset reduces the distortion in the reconstructed image and thus provides a reconstructed video with high quality and PSNR (peak signal to noise ratio) and simultaneously achieving bitrate reduction. SAO encoder is a computation intensive block in HEVC and increases the video decoder/encoder complexity. Therefore, SAO encoder process needs to be optimized to minimize the computational complexity while maximizing bitrate saving, improving visual quality and maintaining compliance set by the HEVC standard.